package com.quanyan.stadium.service.commonComponent;

import com.quanyan.stadium.entity.vo.*;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

/**
 * Created by lei.w on 2016/7/21.
 */
public interface OfficialGameCache {
    /**
     * 获取 赛事基本对象
     *
     * */
    GameEvent getGameEvent(Integer gameEventId) throws InvocationTargetException, IllegalAccessException;
    /**
     * 更新 赛事基本对象
     *
     * */
    void delGameEvent(Integer gameEventId);

    /**
     * 获取 赛事基本对象
     *
     * */
    Map<Integer, GameEvent> queryGameEvent(List<Integer> gameEventIds) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 轮次基本对象
     *
     * */
    GameRound getGameRound(Integer gameRoundId) throws InvocationTargetException, IllegalAccessException;

    /**
     * 删除 轮次基本对象
     *
     * */
    void delGameRound(Integer gameRoundId);

    /**
     * 获取 轮次基本对象
     *
     * */
    Map<Integer, GameRound> queryGameRound(List<Integer> gameRoundIds) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 轮次基本对象
     *
     * */
    List<GameRound> queryGameRoundList(List<Integer> gameRoundIds) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 赛程基本对象
     *
     * */
    GameSchedule getGameSchedule(Integer gameScheduleId, Byte teamType) throws InvocationTargetException, IllegalAccessException;

    /**
     * 删除 轮次基本对象
     *
     * */
    void delGameSchedule(Integer gameScheduleId);

    /**
     * 赛程,更新
     *
     * */
    void updateGameSchedule(Integer gameScheduleId, Byte teamType) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 赛程基本对象
     *
     * */
    Map<Integer, GameSchedule> queryGameSchedule(List<Integer> gameScheduleIds, Byte temType) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 赛程基本对象
     *
     * */
    List<GameSchedule> queryGameScheduleList(List<Integer> gameScheduleIds, Byte temType) throws InvocationTargetException, IllegalAccessException;

    /**
     * 获取 赛事赛选项配置
     *
     * */
    GameEventConfig getGameEventConfig(int type);
    /**
     * 初始化 赛事赛选项配置
     *
     * */
    void intiGameEventConfig(GameEventConfig gameEventConfig, int type);

    /**
     * 删除 赛事赛选项配置
     *
     * */
    void delGameEventConfig(int type);

    /**
     * 获取 内部赛选项配置
     *
     * */
    ClubGameEventConfig getClubGameEventConfig();
    /**
     * 初始化
     *
     * */
    void initClubGameEventConfig(ClubGameEventConfig clubGameEventConfig);

    /**
     * 删除内部赛配置
     */
    void deleteClubGameEventConfig();

    /**
     * 更新黑名单用户
     *
     * */
    void updateBlackUser(int uid);
    /**
     * 查询黑名单用户
     *
     * */
    List<Integer> queryBlackUser();
    /**
     * 清空黑名单用户
     *
     * */
    void deleteAllBlackUser();
    /**
     * 清空黑名单用户
     *
     * */
    void deleteOneBlackUser(int uid);
}
